perm filename E.ALS[UP,DOC]6 blob
sn#139652 filedate 1975-01-16 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00018 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 ABBREVIATIONS and Explanation of relation between various E documants.
C00006 00003 General remarks
C00009 00004 PAGE MOVING commands.
C00014 00005 WINDOW and pointer moving commands.
C00018 00006 LINE MARKING commands.
C00021 00007 LINE-EDIT commands.
C00032 00008 ATTACH and COPY.
C00041 00009 The LINE-INSERT mode.
C00045 00010 Pitfalls and Hazzards.
C00049 00011 FIND commands are string searching commands.
C00060 00012 File switching and text transfering commands ε λ H ∃ and ?
C00065 00013 Margin control. JUST, JFILL, CENTER and JOIN.
C00075 00014 More Margin Controls, ALINE, JLEFT, INDENT <CONTROL>→ and <CONTROL>←
C00082 00015 Other EXTEND commands.
C00089 00016 System commands to evoke E.
C00093 00017 Credits:
C00095 00018 Index
C00119 ENDMK
C⊗;
ABBREVIATIONS and Explanation of relation between various E documants.
This version of the E manual is intended for on-line use by the normal
user. It may be referenced at any time while editing another file simply
by typing a <CONTROL>? command. One may always return to one's original
file (if it had been opened in read-write mode) by typing the <CONTROL>H
command.
A simplified form of this manual for the beginner is available by
typing HELP ETEACH with a carriage return to the system. This copies a
file named TEACH into one's file area and allows one to read it and
modify it for practice.
This is page 2 of E.ALS[UP,DOC] (see the top line with asterisks).
Page 1, the "directory" page, is automatically prepared by E, and in
this case has been planned to be of maximum help to the user. There is
also an Index on page xx.
ABBREVIATIONS used in this manual and in TEACH to characterize commands.
α means hold the "CONTROL" key down while typing a character.
β means hold the "META" key down while typing a character.
αβ means hold both "CONTROL" and "META" keys down while typing.
⊗ means hold either the "CONTROL" key alone or both "CONTROL"
and "META" keys down while typing.
Most commands are single characters with one or both of the two keys.
Additional abbreviations
<cr> carriage RETURN key. <lf> LINE feed key.
<tab> TAB key. <alt> ALT-mode key.
<bs> Back-Space key. <form> FORM-feed key.
<vt> the VT key. <clear> the CLEAR key.
CURRENT means the current line (normally with an → or ↔ on the left).
General remarks
E is a page oriented editor designed for use with a display
terminal. It brings one page of the text into core, as requested, and
it displays a portion of this page as if through a window. A line
pointer and an underscoring cursor mark the position in the text where
editing is to occur. Special commands allow you to go from page to
page, to move the window up or down on the page and to move the line
pointer and cursor as desired.
E does not make a separate disk copy of the file being edited unless
requested to do so by the use of a special command (described later), so
take care or you may damage a file that belongs to someone else.
E achieves its speed (1) by using the system line editor and by only
changing the core copy of the text on the completion of a line edit, and
(2) by updating the disk copy of the page only on the completion of a
page edit (automatically effected by moving to another page). You can
undo an entire page of incorrectly made modifications by cancelling an
update, but unfortunately, you can also lose an entire page of desired
modifications or additions if the system should go down unexpectedly.
Always remember that the text shown on the display may not, and usually
does not, mirror the true state of the actual text on the disk.
E is best understood by recognizing that it operates in a variety of
different modes and that many commands are appropiate only to certain
modes. In fact some commands have quite different effects depending upon
the mode that E is in at the time that the command is given. The
dominant mode is the NORMAL mode. This allows for page, window and line
marker movement commands and commands which enter the other modes.
PAGE MOVING commands.
PAGE-MOVING commands are single characters typed with the CONTROL key
held down or with both the CONTROL and the META keys held down. They may
take modifiers as shown below.
⊗P Go to the next PAGE.
⊗-⊗P Back up to the previous page.
⊗+⊗7⊗P Go foreward 7 pages if possible, otherwise to the last page.
⊗-⊗3⊗P Go backward 3 pages if possible otherwise to the first page.
⊗7⊗P Go to page 7 if possible otherwise to the last page.
It is good practice to limit the page size to less than 150 lines.
This eases the load on the editor and makes the directory of more use,
if you adopt the practice of starting each page with a suitable comment.
E keeps certain vital statistics packed into 9-bit bytes and it gets
into trouble if there are more than 511 lines on any one page.
You are now looking at a longer page than before. Note two things:
1 The top line contains asterisks, the page number and the file name.
2 A bottom line contains dashes, where formerly there were asterisks.
The asterisks mean that you are seeing the page through a window
starting at the top of the page, while the dashes mean that there is yet
more on the page than that shown. On moving the window down, dashes will
replace the top asterisks. If you can then see to the end of the page
asterisks will appear at the bottom. Note also that there are some
lines at the very bottom that echo your command or acknowledge its
execution. Watch these lines to detect errors.
Several commands allow you to move the window up and down on the page
and to move the CURRENT line marker (the arrow on the left) around.
Note that the window moved down on the page only far enough to get to
the end of the page. Had the page been longer, an entirely new window-
ful might have appeared (except for the former last line which now would
become the first line).
The → which had previously been attached to the first line of text,
moved to the last line and stayed with it as the window moved. This
arrow points to a line called CURRENT. This line would be affected if
you were to do some line editing. More on this later.
WINDOW and pointer moving commands.
These are Normal-mode commands.
⊗W Advance the WINDOW, that is, move the last line to the top. If
there is less than a windowful left, move the window only enough
enough to see to the end. (You know this).
⊗L Move the window up so that the first line becomes the LAST. This
is the reverse of ⊗W.
<form> Do a ⊗W if there is more material on this page, otherwise a ⊗P.
Note that no control keys are used.
Caution: be sure E is in the NORMAL mode before using.
⊗-<form> Do a ⊗L if not at the top of the page otherwise go to the last
full window on the next earlier page.
<cr> Move the "Current line" pointer down a line.
Note, no control keys used.
⊗> Move the pointer down 4 lines. This takes the <top> key.
⊗≥ Move the pointer down 1/2 screen. This also takes the <top> key.
<vt> Move the "Current line"pointer up a line.
⊗< Move the pointer up 4 lines. (Be sure to depress the <top> key).
⊗≤ move the pointer up 1/2 screen.
⊗T Move the pointer up to the TOP line, adjusting the window to
show a few lines above this if possible. !(Try this now).
⊗B Move the pointer to the BOTTOM line, adjusting the window to
show a few more lines if possible. !(Try it).
⊗J Move (JUMP) the window so that the CURRENT line is at the top.
⊗0⊗J Move (JUMP) the window so that the CURRENT line is at the middle.
⊗-⊗J Move (JUMP) the window so that the CURRENT line is at the bottom.
αβD DELETE the entire CURRENT line.
This takes both α and β since αD has a different meaning.
Use with caution, the only way to undo a line deletion is
to cancel all corrections to the current page that have
been made since the last disk update.
⊗4αβD Delete 4 lines starting with CURRENT.
Two NORMAL-MODE commands that may be used to save an edited page are:
⊗. Write the current page (as corrected) into the disk file.
Note, this is done automatically with a change page command.
⊗E Do a ⊗. and then EXIT to the system monitor.
Most of the NORMAL-MODE commands require the use of the CONTROL key
and perhaps the META key. <cr>, <vt> and <form> are exceptions.
LINE MARKING commands.
E also provides the facility of marking up to 16 line locations with a
rapid way to return to these locations by using the following commands.
Marks are relative with respect to the line locations on the page but the
stored values are corrected for line insertions and deletions and for page
mark insertions and deletions so that the marks appear to be sticky. Marks
on lines that are attached or deleted are obliterated.
At the present time, no attempt has been made to restore marks to their
proper position after a ⊗XCANCEL command as this would involve some extra
computations at the time of each page change which seems to be excessive.
Marks are saved during ⊗ε, ⊗λ, ⊗? and ⊗H file-switching operations and
are restored on returning (by ⊗H or number) to a previously marked file.
αβM Mark the CURRENT location, recording page number
and line number.
αβ-αβM Erase the MARK at CURRENT.
αβ0αβM Erase all MARKS.
αM Go to the next MARK (cyclicly).
α-αM Go to the previous MARK (cyclicly).
α2αM Go the the second Mark forward from here (cyclically).
α-α3αM Go the the third Mark before the current location (cyclically).
LINE-EDIT commands.
E uses the line-editing commands that are a part of the operating
system.
Typing a character without a CONTROL or META key will normally invoke
the line editor and the character is typed into the CURRENT line. A
cursor will appear under the first character in the line and in that
position where the next typed character will go. A character so typed
overwrites the character that was at the cursor's position. E will be
in the LINE-EDIT mode.
A word of caution- it is usually safe to continue typing on entering
the LINE-EDIT mode without waiting for the system to catch up. This can
fail, so look before giving a carriage return and if anything is amiss
type <alt> and start over again. Strange things can happen. Do not try
to save a partially correct line for later re-editing. You may have to
type <alt> more than once.
When the arrow appears to point at the bottom row of asterisks
(which, of course, is not in the text) E will accept anything that is
typed as an added line of text. The asterisks temporarily dissappear
only to reappear below the new line on the completion of the addition,
and E reverts to the NORMAL mode.
When in the LINE-EDIT mode a <cr> will terminate the mode and move
CURRENT to the next line. A α<cr> will terminate the LINE-EDIT mode
without moving CURRENT. Remember that the line corrections do not appear
in the core image until you issue one of these commands and that the
version on the disk still does not show your corrections until a disk
update has been initiated. When in this intermediate state the letter W
will appear at the end of the title line (with asterisks or dashes) at
the top of the window, meaning that something is yet to be written.
If your change will require the directory to be changed, this will
be shown by the letter D in this top line. The letter X can also appear
if the change requires a in extension in the space on the disk assigned
to the current page.
By the way, window moving commands do not automatically update the
disk, whereas page changing commands always do an update.
Most of the line editing commands listed below will also enter the
LINE-EDIT mode from the NORMAL mode.
If you make a mistake and perhaps lose some valuable information hit
<alt> rather than <cr> and your data will reappear as if by magic.
Some useful line editing commands are:
α<space> Move the cursor to the right 1 space.
α4α<space> Move the cursor 4 spaces to the right.
α<bs> Move the cursor to the left 1 space.
. α5α<bs> Move the cursor 5 spaces to the left.
α<tab> Move the cursor to the end of the line.
α<form> Move the cursor to the start of the line.
αS then <char> Move the cursor to the next occurance of <char>.
α3αS then <char> Move the cursor to the 3rd next occurance of <char>.
αD DELETE a character and move the rest of the line to the
left. If at the end of the line, this will append the
next line to the current.
Caution: don't try to join two long lines, as there is
a limit, imposed by the system editor on the number of
characters in a line, which can cause text to be lost.
(This is going to be fixed soon).
β<bs> Delete the character to the left of the cursor position.
<bs> BACK SPACE, deletes like β<bs> if at the end of the line,
otherwise just moves the cursor to the left like α<bs>.
αK<char> KILL the line starting with the cursor position up to but
not including the character typed. Do nothing if the no
such character is found.
α4αK<char> KILL the line up to the 4th occurrance of the character.
β<char> Make room and insert <char> ahead of the cursor
position.
β<cr> Insert a carriage return and stay in LINE-EDIT mode.
β<vt> DON'T, at least not until you know better, or until a bug
in E gets fixed.
αI Enter INSERT mode (like holding META down continuously).
Everything that you type (including carriage returns)
will be inserted until you type another line command.
Any LINE-EDIT command will cause one to leave the INSERT
mode, for example, the α<space> command.
<cr> Leave LINE-EDIT mode, accept the line and move CURRENT down.
α<cr> Leave LINE-EDIT mode, accept the line, do not advance CURRENT.
α<vt> Leave LINE-EDIT mode, accept the line and move CURRENT up.
<alt> Restore the line to it original condition and leave the
LINE-EDIT mode.
⊗↑ Accept he line, then move to the end of the previous line.
⊗↓ Accept the line, then move to the end of the next line.
These commands work in both NORMAL and LINE-EDIT modes.
The following command works only in the NORMAL mode but since it
enters the LINE-EDIT mode it is best explained here.
⊗Q Insert a copy of the line just above CURRENT and open it
for editing (i.e. enter LINE-EDIT mode).
If you are editing a line and type something that the line editor
does not understand it will usually ignore the error (after thinking
about it for a moment) but don't bank on this too heavily because it can
fail.
If you type a legal ⊗ command (some are forbidden) when in LINE-EDIT
mode the line will be accepted as edited and the command will be carried
out.
(Typing ⊗. in LINE-EDIT mode returns to LINE-EDIT mode automatically
without writing the page.)
The α<cr> command, that works to recall a line from the system buffer
in the system's monitor mode, is replaced by the αQ command as described
above.
ATTACH and COPY.
The ATTACH and COPY commands permit blocks of lines or copies of them
to be moved up and down on the page or from page to page, as desired.
The ATTACH command removes one or more contiguous lines of text from
the core image of the page and places them in a special attach buffer.
The lines are still displayed on the screen in their original position.
Note that if more than 8 lines are attached, then only the first 4
lines and the last 3 lines are shown so that one can see a few lines
both before and following the attached lines to be certain as to their
relationship to the rest of the page. The attached lines are marked by
vertical bars (thus |) at the left.
The apparent position of the attached lines can be made to move up
or down on the page or from page to page with the usual CURRENT-moving
commands to prepare for a final command which will deposit the attached
lined back into the core image of the text at the indicated position.
Perhaps this can be made clearer by remarking that the CURRENT line
designation is actually attached to the line following the section of
text that has been removed (although the → does not appear). What one is
actually doing when one appears to be moving the attached lines is to
move CURRENT around and E cleverly always displays the attach buffer on
the screen just above CURRENT, where it will in fact be put if one gives
the deposit-line command.
Basic commands.
⊗A ATTACH the CURRENT line and mark it with a "|".
⊗3⊗A ATTACH 3 lines starting with CURRENT and mark these with "|'s".
If a number greater than 8 is used, (for the 3 in the example),
only the first 4 and the last 3 lines are shown. A row of dots
is used to indicate that some attached lines are not shown.
⊗E Deposit the attached lines where displayed and Exit ATTACH mode.
Note: this command has a different meaning when one is NOT in
the ATTACH mode (it then means EXIT from E). Don't stutter when
typing it. Give the system time to react.
⊗R REPLACE the attached lines in their original location and leave
the ATTACH mode.
αβK KILL the attached lines (they go away beyond recall) and exit
from the ATTACH mode. Note that αK does not work (for safety).
If you make a practice of using the CONTROL key only, when in
the ATTACH mode, (when it works) you will avoid the danger of
accidentally killing an attachment, if you mean to hit a J or
an L and hit a K instead.
⊗C Make a COPY of the CURRENT line and ATTACH this copy.
⊗5⊗C Make a COPY of 5 lines starting with CURRENT and ATTACH these.
Relative arguments.
Relative-argument commands add or remove lines from the end of the
attach buffer thus:
⊗+⊗A Attach 1 more line beyond those already attached.
⊗+⊗3⊗A Attach 3 more lines beyond those already attached.
⊗-⊗A Detach 1 line from the end of those already attached.
⊗-⊗2⊗A Detach 2 lines from the end of those already attached.
⊗+⊗C Copy 1 more line beyond those already attached.
⊗+⊗4⊗C Copy 4 more lines beyond those already attached.
⊗-⊗C Delete (kill) 1 line from the end of the attached set.
⊗-⊗2⊗C Delete (kill) 2 lines from the end of the attached set.
If the apparent position of the attached lines have been moved before
these relative-argument commands are given then additions and deletions
are made in terms of the apparent new location. This gets a bit hairy in
the case of deletions but it is a very useful device for assembling a
set of copied lines from several different places.
Funny but perhaps useful things happen if one uses a negative
argument that is larger than the number that have been attached.
Note that a single attach command is only effective to the end of the
current page, and an attachment is deposited all on the same page.
A word of warning, a hazard is involved in using ⊗A to move lines
from page to page. The attached lines can be lost if the system should
crash during the interval between the removal of the attached lines from
one page and the final updating of the page to which they are moved.
This hazard can be avoided by copying the lines rather than attaching
them and then going back and deleting the original copy. This
precaution is hardly necessary for a line or two but it is a wise one
when you are moving large blocks of text.
Moving lines from page to page takes time, so don't get impatient.
This is a good place to comment on the RIPPLING report, that you may
have noticed in the scratch-pad lines at the bottom of the screen. This
notice appears when a major rearrangement of the text between records
becomes necessary. This also takes time.
The LINE-INSERT mode.
While one can add text at the bottom of a page by simply moving the
CURRENT marker so that it appears to point at the bottom row of
asterisks (not to dashes!), a special mode is used to insert lines of
text at other points. As a matter of fact it is usually better to enter
this special LINE-INSERT mode if one is to type several lines even when
at the end of a page.
When in the LINE-INSERT mode, typing a carriage return, inserts the
carriage return into the text, writes the line into the core image and
enters the LINE-EDIT mode for the next line to be typed. Care must be
taken to leave the LINE-INSERT mode properly or else undesirable letters
may appear in your text.
The fact that the editor is in the LINE-INSERT mode is signalled by a
double arrow CURRENT line marker ↔ in place of the right arrow →.
To enter the LINE-INSERT mode:
αβ<cr> Enter LINE-INSERT mode, insert a blank line ahead of the text
at CURRENT and mark the new line with the double arrow ↔. If
you are in the middle of a line, this will break the line into
two separate lines, with the ↔ at the start of a blank line
between the two portions.
This does something else, if you are already in LINE-INSERT
mode (see below).
While in LINE-INSERT mode:
<cr> Accept the line and move the ↔ to a newly inserted blank line.
α<cr> Leave the LINE-INSERT mode and accept the line in question.
αβ<cr> Insert a blank line (if not in the middle of a line). If you
are in the middle of a line, this will break the line into two
separate lines, and position the cursor to be ready to accept
text at the end of the second portion. At the present time a
a bug in E prevents the second portion from showing until the
next <cr> has been typed, but it's there.
α<vt> Leave the LINE-INSERT mode but move the → back to the line a-
head of the accepted line.
<alt> Accept the line up to the cursor but delete the rest and leave
the LINE-INSERT mode with the arrow pointing to the remaining
text or to the next line.
Pitfalls and Hazzards.
The great power of E lies in its many modes. At the same time, E
can also be moody if one tries to give it certain commands when it is
not in the appropiate mode. It can even get into a state where it will
not listen to reason. In fact, you may easily lose much of your recent
editing. So it may be well to review some of the pitfalls and hazzards
associated with its use. These are of two types.
Errors of understanding.
<cr> and <vt> are not inverse operations.
Since <cr> and <vt> move CURRENT in the opposite direction when in
NORMAL mode one is tempted to thing of them as being, in some sense,
inverse. They are not, for a number of reasons, some having to do with
system editor design. These could be gotten around by making <vt> into
an Activation character. Many people object to this because it would do
violence to time-hallowed usages. The novice is advised to be very care-
full in using all <vt> commands.
Errors of execution.
The J,K and L keys can be mis-struck.
Since the kill command is potentially dangerous, particularly the αβK
command, one should take especial care in developing sane habits. One
precaution is to adopt the practice of never using both CONTROL and META
keys for the J and L commands which work the same whether or not the
META key is used.
There is, however, a rather good reason for not adopting this
practice generally particularly when in the LINE-EDIT mode since
commands with the CONTROL key only do not always activate immediately
and there is therefore a distinct possibility that initial part of the
command will be gobbled by the line editor if it arrives when the
program is swapped out. This never seems to happen with commands using
both the CONTROL and the META key.
D and < are on the same key.
The delete command is also potentially dangerous,particularly in the
αβD form and even more so when an argument is used. If one types αβ7αβD
when one means α7α< the results can be very unpleasent, to say the
least. Here again if one never forms the habit of using αβ< but always
uses α< then a mistake in not using the <top> key will not be nearly so
painful.
FIND commands are string searching commands.
The search can be specified in several different ways:
1) The search can be for an alphameric string that is separated from
the rest of the text by non-alphameric characters or it may be for any
string regardless of its surroundings. Note that no distinction is made
between upper and lower case.
For single-page searches the commands are:
αβFSmith<cr> Find just plain Smith or smith but not this string in
in $smith, in blacksmith or in Smithsonian. Note that
% and _ are accepted as alphamerics.
αFSmith<cr> Find smith as an isolated word or as a part of a long-
er string (in blacksmith for example). The string is
no longer limited to alphamerics but use care because
there are still some bugs in E.
Note that no space is used between the F and the start of the string.
For multi-page search commands are:
αβXF Smith<cr> Find a delimited string.
αXF Smith<cr> Find the string regardless of surroundings.
Note that CONTROL and META keys are not used with the F and that a
space is required between the F and the string. Commands starting with
the letter X are EXTEND commands which permit more than a single
character to be used for the command name, hence the need for the space
to mark its end.
2) The action that is to be taken on the successful termination of
the search is specified by the delimiter used to terminate the string.
The <cr>, used above, moves the → to the found line. A repeat of the
Find command, if given, will start with this same line, but after the
found string,, so that multiple occurances of a string within a line can
be found.
Accepted action-defining delimiters are:
<cr> Move CURRENT to the found line or report failure.
α<cr> Terminate, as with <cr>, but move the cursor until it is
under the first character of the string. Note that this
leaves E in the LINE-EDIT mode. A second FIND command can
however be given and the next occurance will be found. If
a FIND command is terminated with <cr>, a α<cr> will still
move the cursor to the string.
⊗J JUMP the line with the found string to the top of the
window.
αβ<cr> Enter the LINE-INSERT mode with the ↔ at a newly inserted
blank line ahead of the found line.
αP Make the search over the directory page and then display
the referenced page with the line pointer at the top line.
Note that one can give this command without having to
give an explicit command to go to the directory page.
If the search fails the current location is unchanged.
αβP Make the search over the directory page and then display
the referenced page with the line pointer at the second
occurance of the referenced string (the first will be in
the first line of the page).
⊗A ATTACH all lines starting with CURRENT up to and including
the line with the specified string.
If used with an EXTEND command and if the string is not on
the windowed page, the attachment will begin at the top of
the top of the page on which the string is found.
Attachments do not cross page boundries.
⊗C COPY all lines starting with CURRENT up to and including
the line with the specified string.
See ⊗A above for restriction with an EXTEND command.
αβD DELETE all lines beginning with CURRENT up to but not
including the line with the specified string.
See ⊗A above for EXTEND command restriction.
This is a very dangerous command so use it with caution.
****
The following two terminations are to be implemented soon but
they are not in the version of ETV on the system. They are
discribed here to get comments from potential users.
αβ\ Terminate the searched-for string and prepare to accept a
substitution string which must be terminated by a
carriage return. The searched-for string, if found, will
be replaced by the typed substitution string. If the αβ\
termination is immediately preceded by an argument αβM
where M is any decimal number, (just after the
searched-for string) then the substitution will be made
at the M following occurances of the searched-for string.
The substitution string is sticky so that a substitution
command, when successfully executed for a single
occurance, may be repeated for the next occurence by
typing αβ\<CR> only. The typing of a new string for
searched-for string distroys the record of the previously
saved substitution string and it must be retyped. This
convention has been adopted because of the potentially
dangerous nature of the substitution command. The
omission of a substitution string in this case simply
aborts the command.
It should be noted that the use of these conventions
prevent one from specifying a null substitution string by
the omission of a typed substitution string. To
substitute a null string the αβ\α¬<CR> termination must
be used (see below).
αβ\α¬<CR> Terminate the searched-for string and use an empty string
for the substitution. This command effectively deletes
the searched-for string (but only the non-delimiting
portion if the search is for a delimited string). This
is a very dangerous command and so, for the present at
least, it must be given in the exact form shown without a
repeat argument.
3) The search can be for the first occurance of the specified string
or for the n'th occurance.
α ⊗3⊗Fsmith<cr> FIND the 3rd occurance of SMITH.
⊗Fsmith⊗3<cr> FIND the 3rd occurance of SMITH (alternate form).
A string, once specified, is sticky, that is one need not retype the
string for a repeat of the command. The search string for a within-a-page
search is remembered independently from that for an EXTEND search.
<alt> Cancel both string specifications.
4) The <ESC>I command will terminate any FIND in progress at the end of
the page on which it happens to be searching, and it will report this page
number. This command is not intended for use with a single page F command
and it may give an incorrect message in this case on the termination of a
normal search.
;File switching and text transfering commands ε λ H ∃ and ?
The file switching commands <CONTROL>ε and <CONTROL>λ when followed
by the name of another file name replace the existing file by the newly
specified one while retaining the contents of the ATTACH buffer, thus
allowing one to copy or move text from one file to another file. The ε
command (ENTER) opens the new file in read-write mode while the λ
command (LOOK) opens the file in read-only mode.
As different files are referenced, each file is assigned a number
which can be used thereafter as an argument to the ε or λ command to
call the desired file without retyping its name. When files are called
by number they are positioned at the last referenced page and line. Any
previously existing line marks are also restored.
The list of files with their referencing numbers can be displayed as
a mnemonic aid by the command <CONTROL>∃. The last referenced read-write
file is considered the home file and one can return to it by the
<CONTROL>H command.
Finally it is possible to reference the E-manual file, E.ALS[UP,DOC],
getting to its directory page by typing <CONTROL>?
Commands
⊗ε<file name><cr> Close the current file and open the specified
file in read-write mode. The usual switches /#P, /#L and
/C may be used.The new file is assigned a serial number by
which it may be called later. (The initial file is
numbered 0). When called by number the display is returned
to the last referenced page and with the arrow on the last
referenced line and all previously set line marks restored.
⊗3⊗ε Reopen the file assigned the serial mumber 3 in read-write
mode. Note that no carriage return is used in this case.
Return the display to the last referenced page. Return the
arrow to the last referenced line and restore all previous
line marks. (Use the ⊗∃ command, below, to find numbers).
⊗λ<file name><cr> Close the current file and open the specified
file in read-only mode. The usual switches /#P and /#L
may be used. The new file is assigned a serial number by
which it may be called later. (The initial file is
numbered 0).
⊗3⊗λ Reopen the file assigned the serial mumber 3 in read-only
mode.
⊗∃ List the previously referenced files with their serial
numbers. For convenience the letter H replaces the number
in the listing of the "HOME" file and a "]" is used rather
than a ")" for the file currently displayed.
⊗0⊗∃ Move the current-file listing to location zero and flush
all other listings (to make room for more).
⊗H Return (HOME) to the last referenced read-write file.
⊗? Close the current file and open the E manual file
E.ALS[UP,DOC] on the directory page in read-only mode. If
you wish to return to this file at the same place that you
were previously, reference it by number. Get its number by
by using the ∃ command as described above.
Margin control. JUST, JFILL, CENTER and JOIN.
(See the next page for ALINE,INDENT and JLEFT).
The JUST and JFILL commands are useful for doing left-margin, and/or
right margin justification. The first line of each new paragraph may
also be indented with respect to the body of the paragraph. These
commands apply to the ATTACH buffer when they are given while in the
ATTACH mode. They may be limited to a specified number of lines or they
can apply (by default) to the entire ATTACH buffer or to the entire page.
These commands take two different types of arguments, an initial
argument which specifies the number of lines to be handled, and a
following string of numbers separated by commas to define the paragraph
first-line margin, the left margin, and the right margin. Any or all of
these arguments may be omitted, if commas are used to denote omitted
values in the margin specifying string.
The default option as to the number of lines is the full page or the
full ATTACH buffer for the JUST AND JFILL commands and it is one line
for the CENTER command. The default options as to the margin
specifications are originally set to 1,1,69 for paragraph first line,
normal left margin and right margin. The margin default values for the
margins may be changed by "sticky" commands, as noted below.
JUST and JFILL recognize the first line of a paragraph either by the
fact that the paragraph is preceded by a blank line or by the fact that
the first line begins with a TAB or with a period. TABs and periods,
when so used, are retained during the JUST or JFILL operation if the
first-line left margin is specified as one, otherwise they are deleted
and replaced by the required number of spaces. It should be noted that
these spaces will not be recognized by ETV as the start of a new
paragraph during a subsequent JUST or JFILL operation.
The first line of the total text is not automatically treated as a
first line of a paragraph. This restriction is actually rather arbitrary
and could be changed. It was adopted because it seems unwise to indent
page headings and one frequently wants to fix up the end of a paragraph
with out having to rejustify the entire paragraph. One can always indent
the first line of a block of text when a limited number of lines is
specified by starting the justification with a blank line preceding the
block or by using a TAB or a period as the first character.
The CENTER command differs from the JUST and JFILL commands in that
no filling is done and in that the default argument is one line rather
than the entire page except when in the ATTACH mode when it is the
entire ATTACH buffer. It is similar to these other commands in its use
of the same left and right margin values and in its following of the
same conventions for the specifications of these margins. Should an
attempt be made to center a line that is too long to fit within the
specified margins, the line is simply pushed as far left as possible.
Margin specifications:
Margin specifications may be made applicable to only a single command
with the default value unchanged, by using the CONTROL key only, before
the X, or they may be made to alter the default values as well, by using
both the CONTROL and META keys.
The complete specification is in the form <first line>,<left
margin>,<right margin> However, any combination af these numbers may be
omitted as long as the necessary commas to prevent ambiguity are
included.
To change the paragraph indentation alone, it is only necessary to
type a single decimal number (of not more than 3 digits) to specify an
absolute position. If the number is preceded by a plus or minus sign it
then specifies a relative first line indentation from the current left
margin value. A subsequent modification to the left margin will alter
the paragraph indent value so as to maintain the same indentation from
the body of paragraph.
To change the left margin specification alone, it is only necessary
to type a comma followed by the desired decimal value. In this case the
paragraph indentation remains fixed, rather than its absolute value. Of
course if the paragraph margin value is specified in the same command
string then this value will not be altered, the absolute specification
in this case will over-ride the usual rule.
To change the right margin alone, it is necessary to precede the
decimal number by two commas.
Typical command strings.
⊗XJUST<cr> Justify the current page (or the ATTACH buffer if in
ATTACH mode) using the default values for the initial
line left, regular left and right margins.
Margins are initially set to 1,1,69.
The JOIN command is a special case of JFILL with a default option of
two lines and a right margin default option of 80. Only the right margin
can be specified.
Typical commands.
αXJUST +3,4,66<cr> Justify the current page or the ATTACH buffer
using temporary margins as specified (in this example
to 7, 4 and to 66 respectively).
αβXJUST ,4,66<cr> Justify the current page or the ATTACH buffer
using new sticky margins as specified. These new
values now become the default values. The paragraph
indentation will be left at the previously specified
value.
⊗13⊗XJUST<cr> Justify 13 lines starting with CURRENT. May
be combined with margin specifications, which may be
may be made sticky or temporary as desired.
⊗XJFILL<cr> Redistribute text between lines as if to justify, but
but do not pad lines out with blanks. (see ⊗XJUST<cr>
above for conditions).
⊗XCENTER<cr> Center the CURRENT line or first line,if in the ATTACH
mode, between the default values for the regular left
and right margins.
⊗4A⊗XCENTER<cr> Attach 4 lines and Center the first line only.
⊗4A⊗3⊗XCENTER<cr> Attach 4 lines and Center the first three lines.
⊗XJOIN<cr> JOIN the current line and the one that follows with a
line length limit of 80 characters in the first line.
Make into as many lines as necessary to limit each
line to 80 characters.
More Margin Controls, ALINE, JLEFT, INDENT <CONTROL>→ and <CONTROL>←
(See the previous page for JUST, JFILL and CENTER).
These commands preserve the identity of the text lines while
preforming certain operations on their left margins.
ALINE deletes all leading spaces and TABs and moves the specified
lines (with the entire page or ATTACH buffer as the default option) so
that all lines start at the specified location. Accordingly it takes
only a single margin specification which may be designated as sticky or
as temporary. ALINE replaces all interior TABs with spaces before the
lines are moved. This has the effect of preserving the original TAB-
specified spacing thus permitting tables to be shifted right or left by
any desired amount without losing alignments. As a safety feature,
lines which would extend beyond column 120 (the capacity of the line
editor) are only moved as far as can be done without exceeding this
limit. The default alignment position is column 1.
JLEFT is not implemented at present. The next paragraph describes
the intended implementation.
JLEFT does not replace interior TABs so that portions of a line
beyond a TAB will still be at TAB boundries (although not necessarily
the same one). This allows code to be moved to the right or left a small
amount without changing the position of the associated comment.
INDENT simply moves the specified number of lines (default value of 1
except when in the ATTACH mode when it is the entire ATTACH BUFFER) to
the right or left by the specified amount independent of their original
starting positions. This permits blocks of code to be moved right or
left while preserving their original relative indentations. INDENT takes
one differential margin specification, (to the right or minus if to the
left) subject to the restriction that lines are never moved far enough
to move off of the allowed page (beyond position 1 to the left and
position 120 to the right). The indentation specification may be
designated as sticky or as temporary. The initial default indentation
value is 4.
The commands <CONTROL>→ and <CONTROL>← are special cases of INDENT.
They move the specified lines to the right or left by one position. The
default number of lines is one if not in ATTACH mode or it is the entire
ATTACH buffer. They work only in the NORMAL and ATTACH modes and do not
require a ⊗X or a carriage return. In common with INSERT they limit the
text motion to the range from column 1 to column 120.
Typical commands.
⊗XALINE<cr> ALINE the entire page (or entire ATTACH buffer if in
ATTACH mode) with all lines moved to start with the
default ALINE margin (originally set to 1).
α4αXALINE 5<cr> ALINE 4 lines starting with CURRENT (or with
the start of the ATTACH buffer if in ATTACH mode)
to a left margin starting in column 5.
αXINDENT<cr> INDENT the CURRENT line (or the entire ATTACH buffer
if in the ATTACH mode) by the default value (set to
4 initially), but do not let any line move far enough
to be moved off the page.
α6αXINDENT 3<cr> INDENT 6 lines starting with CURRENT by 3,
with this as a temporary specification only.
α6αXINDENT -3<cr> INDENT 6 lines starting with CURRENT by -3,
(that is move them to the left by 3 positions)
with this as a temporary specification only.
αβ8⊗XINDENT 3<cr> INDENT 8 lines starting with CURRENT by 3,
with the new default value being set to 3.
⊗→ Move the CURRENT line or the ATTACH buffer contents
to the right by one position if this can be done
without the text going beyond column 120.
While it is also possible to specify a desired
number of lines to be indented by giving an initial
argument without entering the ATTACH mode, this
fails to work correctly if any of the lines beyond
the first one start with TABs.
⊗← Move the CURRENT line or the ATTACH buffer contents
to the left by one position if this can be done
without going beyond column 1, that is without losing
any non-blank characters.
⊗6⊗→ Move 6 lines starting with the CURRENT line or with
the start of the ATTACH buffer to the right by one
position if this can be done without the text going
beyond column 120.
Other EXTEND commands.
Certain commands are potentially too dangerous to be safely evoked by
a single character. There are also more commands than can be obtained
with single characters. These contingencies are handled by the EXTEND
command specified as follows:
⊗X Accept the string which follows as a command. This
string may be abbreviated as long as no ambiguity
results. The string must be terminated by a space
if parameters are required, or by a <cr> or some
other delimiter.
The EXTEND form of the FIND command has already been discribed. In
this case only a single letter needs be used, but any partial string up
to the complete word FIND is acceptable. The ⊗XJUST and ⊗XJJFILL
commands described on page 11 are perhaps more typical.
EXTEND commands.
⊗XFIND see page 10 for details on FIND.
⊗XJUST<cr> Justify the current page (or the ATTACH buffer
if in ATTACH mode) using the default values for
the paragraph, left and right margins. Margins
are initially set to 1,1,69. Elaborations on
this basic command are discussed on page 11.
⊗XDRAW<cr> Redraw the complete screen. Used when unwanted
marks show on the screen from whatever cause.
(This does the same thing as ⊗V).
⊗XMARK<cr> Insert a page mark between the CURRENT line and
the line above it and display the new page.
CAUTION * * Do not try to use this command when
the arrow points to an empty line. There is a
bug in E that needs fixing.
⊗XDELETE<cr> Delete the page mark between this page and the next.
Note that using this command just after a ⊗XMARK
command does not undo the newly inserted mark
but it does delete the next mark.
⊗XCANCEL<cr> Do not write out the current page but instead
reread it in from the disk.
⊗XREADONLY<cr> If in read-write write out the current page and
then inhibit any further writing.
⊗XREADWRITE<cr> Disable the write-inhibit.
⊗XGO<cr> Exit from E and repeat the last RPG command.
⊗XDDT<cr> Branch to RAID if it is present. RαG returns.
⊗XAPPEND<cr> Read in an additional page after the current
one so that the two may be edited together.
Effect is undone by ⊗XCANCEL<cr>.
Caution: this increases core size.
XLINCNT<cr> Type the number of lines in the current page.
(Useful formatting information).
⊗XCLOSE<cr> Close the file. This allows others to read it
if you had modified it.
⊗XDIRED<cr> Same as ⊗XRSYS DIRED
⊗XDPYALWAYS<cr> Always re-display text after each command.
⊗XDPYSKIP<cr> Don't re-display text if there are typed-ahead
commands to be executed. (normal mode)
⊗XINSERT<cr> Same as β<form>; insert a page mark line.
⊗XPPSET<cr> Reset screen position of page printer (the three
lines at the bottom of the screen which echo commands).
⊗XQUIT<cr> Same as ⊗XCANCEL followed by ⊗E
⊗XRSYS PRGM<cr> Exits and runs SYS:PRGM
⊗XRUN PRGM<cr> Exits and runs DSK:PRGM
⊗XSNKON<cr> Sets a mode (the normal mode) wherein whenever the
CURRENT line is empty, E reads the next command
character using the SNEAKW UUO rather than INCHRW;
this speeds up the process of entering intra-line
mode on such lines and avoids some possible
timing errors. Don't worry about it, you want this.
⊗XSNKOFF<cr> Makes E use INCHRW always. This switches one set of
possible errors for another, e.g., typing β<cr>
in the middle of a line which was initially empty
doesn't work unless you do this. This is due to
bad design in the monitor.
⊗XTV<cr> Starts TV editing the same file E was, in the same place.
⊗<n>⊗XTYPE<cr> Types n lines starting at CURRENT and moves CURRENT
past those lines. Primarily useful from
non-display terminals.
System commands to evoke E.
Basic commands
CETV <string><cr>
Create a new file with the name and extension as
specified by string.
The file will contain a directory page and one
blank page. E will be in the ADD-LINE mode.
ETV <existing file name><cr>
Enter E with the specified file. If the file has
but one text page, display this, otherwise
display the directory page.
ETV Reenter E with the most recently edited file and
display the most recently opened page (subject
to certain restrictions as described in the
Monitor Manual).
ETV <string1>←<string2><cr>
Copy file named string2 into a new file named
string1, start E and display the text as above.
If the string2 file has a valid directory this
is executed relatively rapidly, if not a new
directory will have to be created. (See the note
below with respect to the /N switch).
R E;<string1>←<string2><cr>
Similar to ETV <string1>←<string2> except for the
way it handles the TMPCOR files. (See the Monitor
Manual for this and other RPG features).
Switches, when used, are strings beginning with a slash which are
placed immediately after the name string that they are to modify.
/R Open the file in the read only mode. This is useful
if one wants to examine a file without any danger
of inadvertently modifying it.
example: ET TEACH.TXT[UP,DOC]/R<cr>
/2P Open the file displaying page 2.
/5L Open the file with the arrow at line 5.
This is not very useful by itself but see below.
/N No Directory. At the present time E gets into trouble
frequently when editing files without Directories.
The inexperienced user is advised to avoid this mode.
Hopefully this will be fixed soon.
/C Create a new file with the specified name. This is of
most use when one wishes to open a new file as a place
to copy information from some other file using the ⊗λ
command.
When two or more switches are to be used they may be put together
inside parenthesis.
example: ET MYFILE(R4P5L)<cr>
Credits:
Dan Swinehart wrote TV, the original version of the display editor,
and created the original version of TEACH. Fred Wright wrote the FAIL
version of TV (called E). Brian Harvey modified TEACH to reflect
differences between E AND TV. Arthur Samuel and Brian Harvey are
responsible for this version. Address all comments and questions to
Samuel, who is currently trying to fix a few of the many remaining bugs
in E.
Disclaimer.
An attempt has been made to present a coordinated view of E. To this
end some simplications have been made. The experienced user may develop
techniques that are not described in this manual. Any outright errors
should, however, be called to our attention.
An earlier and more complete(but perhaps less accurate) description
of E features is available in the TV manual, TVED.DCS[S,DOC], and the
file TV2E.FW[UP,DOC] which describes how E differs from TV.[YAH?]
Index
Read α as CONTROL, β as META, ⊗ as EITHER CONTROL OR BOTH CONTROL AND META
N=Normal, L=Line-insert, E=line-Edit, A=Attach, X=eXtend.
# stands for any decimal number
Command Meaning in Mode Page
⊗A Attach 1 line N
⊗+⊗A Add to A A
⊗#⊗A Attach # lines A
⊗B → to Bottom N,A
⊗C copy N
αD Delete char E
αβD Delete line N
⊗E Exit N,A
αF Find string N
αβF Find word N
⊗G unused
⊗H file Home N
⊗I enter Insert E
⊗J Jump window N
αβK Kill attach A
⊗L Last window N
αM to next Mark N
αβM Make Mark N
⊗N unused
⊗O unused
⊗P Page N
⊗-⊗P -Page N
⊗Q copy line N
⊗R Replace (att) A
αS Seek E
⊗T → to Top N
⊗U Up window N
⊗V View N
⊗W Window down N
⊗X enter eXtend N
⊗Y unused
⊗Z unused
⊗ε file Enter N
⊗λ file Look N
⊗∃ files exist N
⊗0⊗∃ zero file list N
⊗? Query E.ALS N